1. Technical Field
The present invention relates generally to virtual appliances and more particularly, but not by way of limitation, to systems and methods for configuring and scaling runtime instances.
2. History of Related Art
Software is often deployed as virtual appliances at a hypervisor layer of a computer system. As one skilled in the art will appreciate, a virtual appliance is an image file that packages a pre-configured operating-system environment with application software. The application software of a virtual appliance generally includes one or more software components that constitute a solution stack. A solution stack, as used herein, is a set of software components that deliver a product or service. A software component, as used herein, is a software package, a web service, or module that encapsulates a set of related functions or data. An instance of a virtual appliance executing on a given hypervisor is referred to herein as a runtime instance.
Because necessary software components are already installed, virtual appliances generally eliminate the necessity for installation and configuration. Virtual appliances thereby simplify delivery of application software. However, problems arise when an increase in demand from a runtime instance mandates more physical resources (e.g., processing power and memory) than has been provisioned to that runtime instance. A typical solution is to provision another runtime instance with additional resources typically on another physical computer. This usually involves replicating the virtual appliance for that runtime instance on the physical computer. The result, however, is a new runtime instance with an identical solution stack that is disjoint from the solution stack of the original runtime instance. Therefore, the new runtime instance and the original runtime instance may not function as a single interoperating stack.
Moreover, as the value and use of information continues to increase, individuals and businesses seek additional ways to process and store information. One option available to users is information handling systems. An information handling system generally processes, compiles, stores, and/or communicates information or data for business, personal, or other purposes thereby allowing users to take advantage of the value of the information. Because technology and information handling needs and requirements vary between different users or applications, information handling systems may also vary regarding what information is handled, how the information is handled, how much information is processed, stored, or communicated, and how quickly and efficiently the information may be processed, stored, or communicated. The variations in information handling systems allow for information handling systems to be general or configured for a specific user or specific use such as financial transaction processing, airline reservations, enterprise data storage, or global communications. In addition, information handling systems may include a variety of hardware and software components that may be configured to process, store, and communicate information and may include one or more computer systems, data storage systems, and networking systems.